布林值 (Boolean) 是一種用在邏輯判斷上的數值,布林值只有兩種:True 與 False。布林值會發生於各種判斷式:
>>> n = 8
>>> n % 2 == 0
True
布林值可以直接指定給一個變數:
b = True
布林值也可以當作函式的回傳值:
def hello():
    return True
hello()
有了布林值之後,就可以來進行邏輯運算。
邏輯運算經常用來串接條件判斷,例如判斷兩個條件是否同時成立?兩個條件是否至少一個成立?或者某個條件是否不成立?
and 代表「且」,在 and 左右兩邊的條件式都必須成立,整個 and 邏輯運算才會成立,例如:
>>> def hello_and(a, b):
>>>     if a == 3 and b == 5:
>>>         print(a, b, "成立!")
>>>     else:
>>>         print(a, b, "不成立!")
>>>
>>> hello_and(3, 5)
>>> hello_and(4, 5)
3 5 成立!
4 5 不成立!
在 hello_and() 函式裡面,會去判斷變數 a 是否為 3,而且變數 b 是否為 5,如果兩個條件都成立,就會輸出「成立!」;只要有一個變數不符合條件,就會輸出「不成立!」。
or 代表「或」,在 or 左右兩邊的條件式,只要有一個成立,整個 or 邏輯運算就會成立:
>>> def hello_or(a, b):
>>>     if a == 3 or b == 5:
>>>         print(a, b, "成立!")
>>>     else:
>>>         print(a, b, "不成立!")
>>>
>>> hello_or(3, 5)
>>> hello_or(4, 5)
>>> hello_or(4, 6)
3 5 成立!
4 5 成立!
4 6 不成立!
在 hello_or() 函式裡面,同樣判斷 a 與 b 兩變數,但是因為用 or 連接,所以只要有一個變數符合條件,就會輸出「成立!」;只有在兩個變數都不符合條件時,才會輸出「不成立!」。
not 代表「非」,not 並不用來連接兩個條件式,只會單純作用在一個布林值上面,例如:
>>> b = True
>>> not b
False
可以撰寫函式如下:
>>> def hello_not(a):
>>>     if not a == 3:
>>>         print(a, "不是 3!")
>>>     else:
>>>         print(a, "是 3!")
>>>
>>> hello_not(2)
>>> hello_not(3)
>>> hello_not(4)
2 不是 3!
3 是 3!
4 不是 3!
在 hello_not() 函式裡面,會去判斷 a == 3 是否不成立,只有當此條件式不成立時,才會走進 if 的第一個區塊,並輸出「不是 3!」,因此傳入任何不是 3 的參數,都可以獲得「不是 3!」的輸出。
input() 判斷使用者輸入的數值是否為 7,若為 7 則回傳 True,若不為 7 則回傳 False。while 迴圈不斷接收使用者輸入,直到輸入 7 為止再結束迴圈。a 跟 b,用 while 迴圈判斷使用者輸入的是否都為奇數。完整的程式碼放在此 Colab 裡面供各位參考。